<?php
header('content-type:text/html;charset=utf8');
//数据通讯接口类
class Response{
	const JSON="json";
	//总管函数,判断使用json还是xml输出
	static public function main($code,$message="",$data=array(),$type=self::JSON){
		if(!is_numeric($code)){
			return '';
		}
		// $type=isset($_GET['format'])?$_GET['format']:JSON;
		//组合数据格式
		$result=array(
			'code'=>$code,
			'message'=>$message,
			'data'=>$data,
		);
		//根据$type的值判断调用那个函数
		if($type=="json"){
			return self::toJosn($result);
		}elseif ($type=="xml") {
			return self::toXml($result);
		}elseif ($type=="array") {
			var_dump($result);
		}else{
			echo '格式不正确';
		}

	}
	//转换为xml格式
    static public function toXml($data){
        //生成xml字符串
        header('content-type:text/xml');
        $str="<?xml version='1.0' encoding='utf-8'?>";
        $str.="<root>";
        $str.=self::forarr($data);
        $str.="</root>";
        return $str;
    }
    //递归转换多维数组为节点
    static public function forarr($data){
        $s='';
        $id='';
        foreach ($data as $k=>$v) {
            //如果$k为数字.则设置标签为item,属性id=$k
            if(is_numeric($k)){
                $id=" id='{$k}'";
                $k="item";
            }
            $s.="<{$k}{$id}>";
            $s.=is_array($v)?self::forarr($v):"{$v}";
            $s.="</{$k}>";
        }
        return $s;
    }
    //转换为json格式
    static public function toJosn($data){
		return json_encode($data,JSON_UNESCAPED_UNICODE);    	
    }
}
//类的使用案例
$arr=[
    'province'=>'内蒙古',
    'cities'=>[
        'city'=>'鄂尔多斯',
        'js'=>'very good',
    ],
];
$str=Response::main(200,'success',$arr,'xml');
echo $str;